package com.sdk4.jinritemai.model.request;

import com.sdk4.jinritemai.DoudianRequest;
import com.sdk4.jinritemai.model.bean.DoudianShippedOrderInfo;
import com.sdk4.jinritemai.model.response.DoudianOrderLogisticsAddMultiPackResponse;
import lombok.Getter;
import lombok.Setter;

import java.util.List;

/**
 * @author huangji
 * @date 2021/7/2 20:41
 */
@Getter
@Setter
public class DoudianOrderLogisticsAddMultiPackRequest2 implements DoudianRequest<DoudianOrderLogisticsAddMultiPackResponse> {


    private final String method = "order.logisticsAddMultiPack";

    /**
     * 父订单ID，需在结尾带上大写字母A
     */
    private String order_id;

    /**
     * 包裹list
     */
    private List<Pack> pack_list;

    /**
     * 发货地址id
     */
    private String address_id;


    /**
     * 请求唯一标识 10s内，如果用了同样的request_id发起接口请求，会报错：重复操作，不要在短时间内(10秒内)重复调用该接口 请求成功后，则request_id失效。报错"已发货成功，request_id已失效"
     */
    private String request_id;


    /**
     * 是: 发货会拒绝售后 否:发货会失败
     */
    private Boolean is_reject_refund;


    @Override
    public Class<DoudianOrderLogisticsAddMultiPackResponse> getResponseClass() {
        return DoudianOrderLogisticsAddMultiPackResponse.class;
    }

    @Getter
    @Setter
    public static class Pack {

        /**
         * 需要发货的子订单信息列表
         */
        private List<DoudianShippedOrderInfo> shipped_order_info;


        /**
         * 运单号
         */
        private String logistics_code;

        /**
         * 物流公司名称
         */
        private String company;


        /**
         * 物流公司Code，由接口/order/logisticsCompanyList返回的物流公司列表中对应的Code. ID和code必传一个, 优先使用code
         */
        private String company_code;


        /**
         * 物流公司ID，由接口/order/logisticsCompanyList返回的物流公司列表中对应的ID
         */
        private Long logistics_id;


    }
}
